
a,b=input().strip().split(' ')
a=float(a)
b=float(b)

def fun(x):
    return 4/(1+x*x)

def trapezoid(a,b,n):
    if n==1:
        return (b-a)/2*(fun(a)+fun(b))
    else:

        h=(b-a)/n
        return trapezoid(a, b, int(n / 2))/2+(b - a)/n*sum(fun(a+h+h*2*i) for i in range(0, int(n/2)))

def simpson(a,b,n):
    return (4*trapezoid(a,b,2*n)-trapezoid(a,b,n))/3

def cotes(a,b,n):
    return (16 * simpson(a, b, 2*n) - simpson(a, b, n)) / 15

def romberg(a,b,n):
    return (64 * cotes(a, b, 2*n) - cotes(a, b, n)) / 63

print("%.2f"%romberg(a,b,16))